package com.ruoyi.factorydata.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;

import java.io.Serializable;
import java.util.Date;

/**
 * @author herman
 * @description: 工单统计信息
 * @date 2025-08-03 17:13:27
 * @version: 1.0
 */
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class WorkOrderStatisticsDTO implements Serializable {
    private static final long serialVersionUID = 1698626212829212523L;


    /**
     * 工单id
     */
    private Long workOrderId;
    /**
     * 工单类型
     */
    private String workOrderType;
    /**
     * 工单编号
     */
    private String workOrderCode;
    /**
     * 工单状态
     */
    private Integer status;
    /**
     * 优先级
     */
    private Integer priority;
    /**
     * 产品名称
     */
    private String productName;
    /**
     * 产品编码
     */
    private String productCode;

    /**
     * 母版编码
     */
    private String modelMaterialCode;
    /**
     * 规格
     */
    private String specification;
    /**
     * 计划数量
     */
    private Long plannedQuantity;
    /**
     * 完工数量
     */
    private Long completedQuantity;
    /**
     * 报废数量
     */
    private Long scrapQuantity=0L;
    /**
     * 当前工序id
     */
    private Long nowProcessId;

    /**
     * 当前工序编码
     */
    private String nowProcessCode;

    /**
     * 当前工序名称
     */
    private String nowProcessName;
    /**
     * 当前工序类型
     */
    private String nowProcessType;
    /**
     * 工序步骤
     */
    private Integer nowProcessStep;
    /**
     * 工单当前工序的订单负责人ID
     */
    private Long nowProcessOrderOwnerId;
    /**
     * 工艺路线总工序数
     */
    private Integer craftRouteProcessCount=0;
    /**
     * 项目编号
     */
    private String projectCode;
    /**
     * 项目ID
     */
    private Long projectId;
    /**
     * 计划开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date plannedStartTime;

    /**
     * 计划结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date plannedEndTime;
    /**
     * 实际开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date actualStartTime;

    /**
     * 实际结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date actualEndTime;

    /**
     * 工艺路线ID
     */
    private Long craftRouteId;
    /**
     * 工单时长
     */
    private Integer workOrderDuration;
    /**
     * 延期天数
     */
    private Integer delayDays;
    /**
     * 客户ID
     */
    private Long customerId;
    /**
     * 客户名称
     */
    private String customerCode;

}
